//
//  LXTableViewController.swift
//  LXTXShop
//
//  Created by apple on 2018/4/3.
//  Copyright © 2018年 LX. All rights reserved.
//

import UIKit

class LXTableViewController: LXBaseViewController, UITableViewDataSource,UITableViewDelegate {

    var tableView: UITableView!
    let header = MJRefreshNormalHeader()
    let footer = MJRefreshBackNormalFooter()
    var pageIndex = 1
    var pageCount = 1
    
    override func viewDidLoad() {
        super.viewDidLoad()
        if self.responds(to: #selector(getter: edgesForExtendedLayout)){
            self.edgesForExtendedLayout = UIRectEdge.init(rawValue: 0)
        }
    }
    
    public func createTableView(frame:CGRect,style:UITableViewStyle,headerRefresh:Bool,footerRefresh:Bool,tableView:(UITableView)->()) -> Void {
        self.tableView = UITableView(frame: frame,style :style)
        self.tableView.delegate = self
        self.tableView.dataSource = self
        self.tableView.tableFooterView = UIView()
        if headerRefresh {
            header.setRefreshingTarget(self, refreshingAction:#selector(LXTableViewController.headerRefresh))
            header.lastUpdatedTimeLabel.isHidden = true
            header.isAutomaticallyChangeAlpha = true
            self.tableView.mj_header = header
        }
        
        if footerRefresh {
            footer.setRefreshingTarget(self, refreshingAction:#selector(LXTableViewController.footerRefresh))
            self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
            footer.ignoredScrollViewContentInsetBottom = 0;
            self.tableView.mj_footer = footer
        }
        
        tableView(self.tableView)
        
    }
    
    @objc public func headerRefresh(){}
    @objc public func footerRefresh(){}
    
    // MARK: - Table view data source
    
    public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = LXTableViewCell.cellWithTableView(tableView: tableView);
        return cell
        
    }
    
    func numberOfSections(in tableView: UITableView) -> Int {
        // #warning Incomplete implementation, return the number of sections
        return 1
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete implementation, return the number of rows
        return 10
    }
    
    // MARK: - Table view delegate
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        
        tableView.deselectRow(at: indexPath, animated: true)
    }
    
    //    override func viewDidLayoutSubviews() {
    //        if _tableView.responds(to: #selector(setter: _tableView.separatorInset)) {
    //            _tableView.separatorInset = UIEdgeInsetsMake(0,0,0,0)
    //        }
    //    }
    
    func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        if  cell.responds(to: #selector(setter: cell.separatorInset)) {
            cell.separatorInset = UIEdgeInsetsMake(0, 0, 0, 0)
            cell.layoutMargins = UIEdgeInsetsMake(0, 0, 0, 0)
        }
    }
    
    func endRefreshing() {
        self.tableView.mj_header.endRefreshing()
        self.tableView.mj_footer.endRefreshing()
    }
    
}
